6055d1b696ea2e3085947afe22344b8d7a1d3589,src/java/org/apache/cassandra/db/Table.java,Table,apply,#RowMutation#Object#boolean#,326

Before Change


                    {
                        // read old indexed values
                        QueryFilter filter = QueryFilter.getNamesFilter(key, new QueryPath(cfs.getColumnFamilyName()), mutatedIndexedColumns);
                        oldIndexedColumns = cfs.getColumnFamily(filter);

                        // apply the mutation
                        applyCF(cfs, key, columnFamily, memtablesToFlush);

After Change


                    {
                        // read old indexed values
                        QueryFilter filter = QueryFilter.getNamesFilter(key, new QueryPath(cfs.getColumnFamilyName()), mutatedIndexedColumns);
                        ColumnFamily oldIndexedColumns = cfs.getColumnFamily(filter);

                        // ignore obsolete column updates
                        if (oldIndexedColumns != null)
                        {
                            for (IColumn oldColumn : oldIndexedColumns)
                            {
                                if (cfs.metadata.reconciler.reconcile((Column) oldColumn, (Column) cf.getColumn(oldColumn.name())).equals(oldColumn))
                                {
                                    cf.remove(oldColumn.name());
                                    mutatedIndexedColumns.remove(oldColumn.name());
                                    oldIndexedColumns.remove(oldColumn.name());
                                }
                            }
                        }

                        // apply the mutation
                        applyCF(cfs, key, cf, memtablesToFlush);

                        // add new index entries
                        for (byte[] columnName : mutatedIndexedColumns)
                        {
                            IColumn column = cf.getColumn(columnName);
                            DecoratedKey<LocalToken> valueKey = cfs.getIndexKeyFor(columnName, column.value());
                            ColumnFamily cfi = cfs.newIndexedColumnFamily(columnName);
                            cfi.addColumn(new Column(mutation.key(), ArrayUtils.EMPTY_BYTE_ARRAY, column.clock()));
                            applyCF(cfs.getIndexedColumnFamilyStore(columnName), valueKey, cfi, memtablesToFlush);
                        }

                        // remove the old index entries
                        if (oldIndexedColumns != null)
                        {
                            int localDeletionTime = (int)(System.currentTimeMillis() / 1000);
                            for (Map.Entry<byte[], IColumn> entry : oldIndexedColumns.getColumnsMap().entrySet())